#include <iostream>

#include "list.h"
#include "output.h"
#include "addition.h"
#include "substraction.h"
#include "multiplication.h"
#include "division.h"

typedef list_t<12, list_t<12, empty_list_t>> first;
typedef list_t<88, empty_list_t> second;

typedef addition<first, second>::result_ first_plus_second;
//typedef substraction<first, second>::result_ first_minus_second;
typedef multiplication<first, second>::result_ first_mult_second;
typedef division<first, second>::result_ first_div_second;

int main()
{
   std::cout << "a = ";
   list_output<first>();
   std::cout << "b = ";
   list_output<second>();

   std::cout << "\na + b = ";
   list_output<first_plus_second>();
   std::cout << "a - b = ";
   //list_output<first_minus_second>();
   std::cout << "a * b = ";
   list_output<first_mult_second>();
   std::cout << "a / b = ";
   //list_output<first_div_second>();

   std::cin.get();
   return 0;
}